home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 34.zip / BS1 part 34 / FredFish PD 314.adf / Zc / zcsrc.lzh / IOLib / stdio / getw.c < prev    next >
C/C++ Source or Header  |  1988-11-09  |  818b  |  58 lines

  1. #include <stdio.h>
  2.  
  3. int getw(fp)
  4.     register FILE *fp;
  5.     {
  6.     register int n, c;
  7.  
  8.     if((c = fgetc(fp)) == EOF)
  9.         return(EOF);
  10.     n = (c << 8);
  11.     if((c = fgetc(fp)) == EOF)
  12.         return(EOF);
  13.     n |= (c & 0xFF);
  14.     return(n);
  15.     }
  16.  
  17. int putw(n, fp)
  18.     register int n;
  19.     register FILE *fp;
  20.     {
  21.     register int m;
  22.  
  23.     m = (n >> 8);
  24.     if(fputc((m & 0xFF), fp) == EOF)
  25.         return(EOF);
  26.     if(fputc((n & 0xFF), fp) == EOF)
  27.         return(EOF);
  28.     return(n);
  29.     }
  30.  
  31. long getl(fp)
  32.     register FILE *fp;
  33.     {
  34.     register long n, c;
  35.  
  36.     if((c = getw(fp)) == EOF)
  37.         return(EOF);
  38.     n = (c << 16);
  39.     if((c = getw(fp)) == EOF)
  40.         return(EOF);
  41.     n |= (c & 0xFF);
  42.     return(n);
  43.     }
  44.  
  45. long putl(n, fp)
  46.     register long n;
  47.     register FILE *fp;
  48.     {
  49.     register long m;
  50.  
  51.     m = (n >> 16);
  52.     if(putw((m & 0xFFFFL), fp) == EOF)
  53.         return(EOF);
  54.     if(putw((n & 0xFFFFL), fp) == EOF)
  55.         return(EOF);
  56.     return(n);
  57.     }
  58.